package com.gxa.mapper;


import com.gxa.pojo.GoodsStorage;
import com.gxa.pojo.InStorage;
import com.gxa.pojo.OutStorage;
import com.gxa.pojo.OutStorageGoods;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author 陈静
 * @date 2020/9/25 14:39
 */
public interface OutStorageMapper {

    /**
     * 查询所有仓库名字
     * @return 仓库名字
     */
    List<Map<String,Object>>findStoreName();

    /**
     * 查询指定日期范围，出库仓库，客户名称，审核状态 的出库信息
     * @param map
     * @return
     */
    List<OutStorage>  findOutStorage(Map map);
    Integer countFindOutStorage(Map<String,Object> map);

    /**
     *
     * @param start  起始页
     * @param pageSize  分页大小
     * @return
     */
    List<OutStorage> findOutStorageByPage(Integer start, Integer pageSize);
    /**
     * 返回总数据数
     * @return
     */
    Integer findAllOutStorage();
    /**
     * 修改状态 0 待审批 1 已通过
     */
    Integer updateState(Map map);
    List<Map> findOutStorageGoodss(Integer id);
    Integer updateGoodsStorageStock2(Double bStock,Double sStock,Integer id);
    Integer updateGoodsStorageStock3(Integer bStock,Integer sStock,Integer id);
    Integer insertGoodsStorage(Map map);

    /**
     * 查询所有的客户名称
     * @return
     */
    List<Map<String,Object>> findCustomerName();
    /**
     *  查询所有的品牌名
     * @return
     */
    List<Map<String,Object>> findBrandName();
    /**
     *  查询所有的分类名称
     * @return
     */
    List<Map<String,Object>> findLevelName();

    /**
     * 根据品牌、分类查询商品信息
     * @param map 品牌 分类
     * @return
     */
    List<Map<String,Object>> findOutStorageGoods(Map<String,Object> map);
    Integer countFindOutStorageGoods(Map<String,Object> map);

    Integer insertOutStorageGoods(OutStorageGoods outStorageGoods);

    /**
     *  通过id查询对应的库存信息
     * @param id 参数 id
     * @return id对应的库存信息
     */
    OutStorage findOutStorageById(Integer id);

    /**
     *  通过库存id查询对应的商品信息
     * @param outStorageId 参数 库存id
     * @return
     */
    List<Map<String, Object>> findOutStorageGoodsByOutStorageId(Integer outStorageId);

    /**
     *  通过id删除库存信息
     * @param id 参数
     * @return 影响行数
     */
    Integer deleteOutStorageById(Integer id);
    /**
     * 通过入库id删除对应的商品信息
     * @param id  入库id
     * @return 影响行数
     */
    Integer deleteOutStorageGoodsByOutStorageId(Integer id);

    //全查询
    List<Map<String, Object>> findAllOutStorages();
    Integer countFindAllOutStorages();
//   Integer insertOut(int i, Date date);

    /**
     * 插入出库信息
     * @param
     * @return
     */

    Integer insertOutStorage(Map map);
    Integer findOutStorageId();

    /**
     * 插入出库商品信息
     * @param
     * @return
     */
    Integer insertOutStorageGoodss(Map map);
    GoodsStorage findGoodsStorageByName(String name);
    Integer updateGoodsStorageStock(Double bStock,Double sStock,Integer id);

    /**
     *  更新出库信息
     * @param map
     * @return
     */
    Integer updateOutStorage(Map map);
    Integer deleteOutStorageGoods(Map map);
    Integer insertOutStorageGoodsByOutStorageId(Map map);
}
